<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

class Mall_service {
    private $wsUserName    = 'admin';
    private $wsPassWord    = '1234';
    private $wsdl   = 'http://id.247mall.vn/api/api/';
    private $funcs = array(
                        'user'          =>'user',
                        'users'         =>'users',
                        'register'      =>'register',
                        'checkLoginEmail'    =>'checkLoginEmail',
                        'checkEmail'    => 'checkEmail'
                    );


    function __construct() {
    
    }
    
    //check email exist
    public function isEmailExist($email, $client_ip)
    {
        $data = array(
                        "Email" => $email,
                        "IP" => $client_ip,
                        "wsUserName" => $this->wsUserName,
                        "wsPassword" => $this->wsPassWord,
                        "Signature" => md5($email.$this->wsUserName.$this->wsPassWord)
        );
        $checkEmailResult = $this->_curl($this->wsdl.$this->funcs["checkEmail"], $data);
        print_r($checkEmailResult);exit;
    }
    
    //get all user
    public function getAllUser($client_ip) {
    	$data = array(
                        "wsUserName"	=> $this->wsUserName,
                        "wsPassword"	=> $this->wsPassWord,
                        "IP"		=> $client_ip,
                        "Signature"	=> md5($this->wsUserName.$this->wsPassWord)
		);
		
        return $this->_curl($this->wsdl.$this->funcs['users'], $data);
    }
    
    //get one user
    public function getUser($username, $client_ip) {
    	$data = array(
                        "UserName"      => $username,
                        "wsUserName"	=> $this->wsUserName,
                        "wsPassword"	=> $this->wsPassWord,
                        "IP"		=> $client_ip,
                        "Signature"	=> md5($username.$this->wsUserName.$this->wsPassWord)
		);

        $result = $this->_curl($this->wsdl.$this->funcs['user'], $data);
        
        switch ($result)
        {
            case '-888':
                $result = 'Lỗi hệ thống.';break;
            case '-110':
                $result = 'Tham số của hàm không hợp lệ.';break;
            case '-102':
                $result = 'Chữ ký điện tử không hợp lệ.';break;
            case '-101':
                $result = 'Ip bị cấm truy cập WebService.';break;
            case '-100':
                $result = 'Tài khoản WebService không tồn tại.';break;
            case '-1':
                $result = 'Tài khoản không hợp lệ.';break;
            case '-2':
                $result = 'Tài khoản không tồn tại.';break;
        }
        
        return $result;
    }
    
    //register
    public function quickRegister($username, $password, $email, $client_ip) {
    	$data = array(
                        "UserName"      => $username,
                        "Password"	=> $password,
                        "wsUserName"	=> $this->wsUserName,
                        "wsPassword"    => $this->wsPassWord,
                        "Email"         => $email,
                        "IP"		=> $client_ip,
                        "Signature"	=> md5($username.$this->wsUserName.$this->wsPassWord)
		);
        //print_r($data);exit;
        $quickRegisterResult = $this->_curl($this->wsdl.$this->funcs['register'], $data);
        
        switch ($quickRegisterResult)
        {
            case '-888':
                $result['code'] = $quickRegisterResult;
                $result['msg']  = 'Lỗi hệ thống.';break;
            case '-110':
                $result['code'] = $quickRegisterResult;
                $result['msg']  = 'Tham số của hàm không hợp lệ.';break;
            case '-102':
                $result['code'] = $quickRegisterResult;
                $result['msg']  = 'Chữ ký điện tử không hợp lệ.';break;
            case '-101':
                $result['code'] = $quickRegisterResult;
                $result['msg']  = 'Ip bị cấm truy cập WebService.';break;
            case '-100':
                $result['code'] = $quickRegisterResult;
                $result['msg']  = 'Tài khoản WebService không tồn tại.';break;
            case '-2':
                $result['code'] = $quickRegisterResult;
                $result['msg']  = 'Tài khoản không hợp lệ hoặc đã được đăng ký.';break;
            case '-3':
                $result['code'] = $quickRegisterResult;
                $result['msg']  = 'Email không hợp lệ hoặc đã được đăng ký.';break;
            case '-4':
                $result['code'] = $quickRegisterResult;
                $result['msg']  = 'Mật khẩu quá đơn giản.';break;
            case '-5':
                $result['code'] = $quickRegisterResult;
                $result['msg']  = 'Mật khẩu không được trùng với tài khoản.';break;
            default :
                $result['code'] = 1;
                $result['msg']=$quickRegisterResult;
        }
        
        return $result;
    }
    
    //get one user
    public function checkLogin($email, $password, $client_ip) {
    	$data = array(
                        "Email"      => $email,
                        "wsUserName"	=> $this->wsUserName,
                        "wsPassword"    => $this->wsPassWord,
                        "Password"	=> $password,
                        "IP"		=> $client_ip,
                        "Signature"	=> md5($email.$this->wsUserName.$this->wsPassWord)
		);

        $checkLoginResult = $this->_curl($this->wsdl.$this->funcs['checkLoginEmail'], $data);
        
        switch ($checkLoginResult)
        {
            case '-888':
                $result['code'] = $checkLoginResult;
                $result['msg'] = 'Lỗi hệ thống.';break;
            case '-110':
                $result['code'] = $checkLoginResult;
                $result['msg'] = 'Tham số của hàm không hợp lệ.';break;
            case '-102':
                $result['code'] = $checkLoginResult;
                $result['msg'] = 'Chữ ký điện tử không hợp lệ.';break;
            case '-101':
                $result['code'] = $checkLoginResult;
                $result['msg'] = 'Ip bị cấm truy cập WebService.';break;
            case '-100':
                $result['code'] = $checkLoginResult;
                $result['msg'] = 'Tài khoản WebService không tồn tại.';break;
            case '-1':
                $result['code'] = $checkLoginResult;
                $result['msg'] = 'Tài khoản hoặc mật khẩu không đúng.';break;
            default :
                $result['code'] = 1;
                $result['msg']=$checkLoginResult;
        }
        
        return $result;
    }
    
    public function _curl($url, $data)
    {
        if(!isset($timeout)) $timeout=30;
        $curl_handle = curl_init();
        curl_setopt($curl_handle, CURLOPT_URL, $url);
        curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($curl_handle, CURLOPT_POST, 1);
        curl_setopt($curl_handle, CURLOPT_POSTFIELDS,$data);
        $buffer = curl_exec($curl_handle);
        curl_close($curl_handle);  
        $result = ($buffer);
        return $result;
    }
    
}